nacteni vlastniho kurzoru

Otázka od: petr palicka

4. 11. 2004 16:27

Ahoj,

   trapim se trapim...

potrebuju do aplikace dostat vlastni kurzor pro mys. podle helpu by melo
stacit toto:

   Screen.Cursors[crBigCross]:=LoadCursor(HInstance, 'CRBIGCROSS');
   pbDrawBox.Cursor:=crBigCross;

ale kde nic tu nic. co delam spatne?
crBigCross je moje konstanta.

Dik Peca


Odpovedá: Petr Brant

5. 11. 2004 9:46

Hm... a mas naincludovany soubor s tim resourcem? Nejak {$R MYCURSORS.RES}
nebo podobne, ted se nepodivam. A jeste tam nejakou roli hraji mala/velka
pismena.

RNDr. Petr Brant [brant@dcomm.cz]
http://brant.wz.cz <http://brant.wz.cz>

> potrebuju do aplikace dostat vlastni kurzor pro mys. podle helpu by melo
> stacit toto:
>
> Screen.Cursors[crBigCross]:=LoadCursor(HInstance, 'CRBIGCROSS');
> pbDrawBox.Cursor:=crBigCross;
>
> ale kde nic tu nic. co delam spatne?
> crBigCross je moje konstanta.
>
>


Odpovedá: petr palicka

5. 11. 2004 10:26



Petr Brant wrote:

> Hm... a mas naincludovany soubor s tim resourcem? Nejak {$R MYCURSORS.RES}
> nebo podobne, ted se nepodivam. A jeste tam nejakou roli hraji mala/velka
> pismena.

cursor je v RES aplikace a pojmenovan velkymi pismeny (to mi neco rika,
proto jsem to tak udelal).

ale nekde na netu jsem nasel priklad, kde se pouziva nahrazeni jineho
nepotrebneho kurzoru. protoze jsem potreboval jenom jiny kriz, pouzil
jsem konstantu delphi crCross, misto sve vlastni a viola... uz to
funguje  

   Screen.Cursors[crCross]:=LoadCursor(HInstance, 'CRBIGCROSS');
   pbDrawBox.Cursor:=crCross;


Peca


Odpovedá: MISHAK

5. 11. 2004 16:14

> Hm... a mas naincludovany soubor s tim resourcem? Nejak {$R MYCURSORS.RES}
> nebo podobne, ted se nepodivam. A jeste tam nejakou roli hraji mala/velka
> pismena.

> > potrebuju do aplikace dostat vlastni kurzor pro mys. podle helpu by melo
> > stacit toto:
> >
> > Screen.Cursors[crBigCross]:=LoadCursor(HInstance, 'CRBIGCROSS');
> > pbDrawBox.Cursor:=crBigCross;
> >
> > ale kde nic tu nic. co delam spatne?
> > crBigCross je moje konstanta.
ne crBigCross ukazuje jen na prvek pole v Screen.Cursors
spravne prirazeni je pbDrawBox.Cursor:=Screen.Cursors[crBigCross];
nebo crBigCross definujte jako promenou HCURSOR nebo tak nejak
const crBigCursor: HCursor = nejake_cislo;
crBigCursor := Screen.Cursor[crBigCursor];

PS v RES nehraji roli velka nebo mala pismena, ale je zvyk to psat velkima (co
kdyby..  

PS pane brante zkuste si udelat hezci stranky PLZ

MISHAK[17] >> http://mishak.wz.cz >> gmishka@seznam.cz

Odpovedá: Vlastimil Burian

9. 11. 2004 11:06

> Screen.Cursors[crBigCross]:=LoadCursor(HInstance, 'CRBIGCROSS');
> pbDrawBox.Cursor:=crBigCross;
>
> ale kde nic tu nic. co delam spatne?


co se tyce stadrardnich kurzoru tak to sem nikdy nezkousel menit pomoci
zdroju ... proc vlastne ... ale pochopitelne muzes ze zdroju nacist vlastni
kurzory ... prvne si je hod do zdroje RES ... pak ho v programu nacti {$
soubor.res} (nejlip na zac. sekce implem.) ... ted u sebe nemam delphi ale
funkci
LoadCursor(MAININSTANCE, 'MY_CURSOR_1') ziskas pouze handle toho kurzoru
takze to prirad do Screen.Cursor.Handle ... ted u sebe nemam delphi abych si
to overil ale bude to tak ...


Odpovedá: Petr Brant

9. 11. 2004 13:29

Ted jsem nasel jeden stary kod jeste z doby Delphi 1.0, ktery funguje:

const
     crPudorys = 10;
     crProstor = 11;
     crVolba = 12;
....
{$R CURSORS.RES}
....
Screen.Cursors[crPudorys] := LoadCursor(HInstance, 'PUDORYS');
Screen.Cursors[crProstor] := LoadCursor(HInstance, 'PROSTOR');
Screen.Cursors[crVolba] := LoadCursor(HInstance, 'VOLBA');
....
Screen.Cursor:=crProstor;
....

RNDr. Petr Brant [brant@dcomm.cz]
http://brant.wz.cz <http://brant.wz.cz>


> > Screen.Cursors[crBigCross]:=LoadCursor(HInstance, 'CRBIGCROSS');
> > pbDrawBox.Cursor:=crBigCross;
> >
> > ale kde nic tu nic. co delam spatne?
>
>
> co se tyce stadrardnich kurzoru tak to sem nikdy nezkousel menit pomoci
> zdroju ... proc vlastne ... ale pochopitelne muzes ze zdroju nacist
> vlastni
> kurzory ... prvne si je hod do zdroje RES ... pak ho v programu nacti {$
> soubor.res} (nejlip na zac. sekce implem.) ... ted u sebe nemam delphi ale
> funkci
> LoadCursor(MAININSTANCE, 'MY_CURSOR_1') ziskas pouze handle toho kurzoru
> takze to prirad do Screen.Cursor.Handle ... ted u sebe nemam delphi abych
> si
> to overil ale bude to tak ...


Odpovedá: Vlastimil Burian

10. 11. 2004 12:26

> > LoadCursor(MAININSTANCE, 'MY_CURSOR_1') ziskas pouze handle toho kurzoru
> > takze to prirad do Screen.Cursor.Handle ...

taxe oprava - zmylil sem se - handle sam o sobe priradit je na nic ...
pouzijte funkce
    SetCursor - lokalni zmena kurzoru v dane aplikaci
    SetSystemCursor - zmeni dany kurzor pro cele windows a to i po ukonceni
aplikace !
(viz WinAPI help)